/*
* Copyright (c) 2017 Sprint
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*    http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

/****************
 Generated By: fdtool enhancements to diafuzzer
 License: same as freeDiameter
****************/


/* 
 * Dictionary definitions of objects specified in ts29212_avps (e30).
 */
#include <freeDiameter/extension.h>

#define PROTO_VER "e30"
#define GEN_DATE  1506697181.97

const char *ts29212_avps_proto_ver = PROTO_VER;
const double ts29212_avps_gen_date = GEN_DATE;

/* The content of this file follows the same structure as dict_base_proto.c */

#define CHECK_dict_new( _type, _data, _parent, _ref )                                     \
{                                                                                         \
    int _ret = fd_dict_new( fd_g_config->cnf_dict, (_type), (_data), (_parent), (_ref) ); \
    if ( _ret != 0 && _ret != EEXIST )                                                    \
       return _ret;                                                                       \
}

#define CHECK_dict_search( _type, _criteria, _what, _result )		\
    CHECK_FCT(  fd_dict_search( fd_g_config->cnf_dict, (_type), (_criteria), (_what), (_result), ENOENT) );

struct local_rules_definition {
    struct dict_avp_request avp_vendor_plus_name;
    enum rule_position	position;
    int 			min;
    int			max;
};

#define RULE_ORDER( _position ) ((((_position) == RULE_FIXED_HEAD) || ((_position) == RULE_FIXED_TAIL)) ? 1 : 0 )

/* Attention! This version of the macro uses AVP_BY_NAME_AND_VENDOR, in contrast to most other copies! */
#define PARSE_loc_rules( _rulearray, _parent) {                                                         \
        int __ar;                                                                                       \
        for (__ar=0; __ar < sizeof(_rulearray) / sizeof((_rulearray)[0]); __ar++) {                     \
                struct dict_rule_data __data = { NULL,                                                  \
                        (_rulearray)[__ar].position,                                                    \
                        0,                                                                              \
                        (_rulearray)[__ar].min,                                                         \
                        (_rulearray)[__ar].max};                                                        \
                __data.rule_order = RULE_ORDER(__data.rule_position);                                   \
                CHECK_FCT(  fd_dict_search(                                                             \
                        fd_g_config->cnf_dict,                                                          \
                        DICT_AVP,                                                                       \
                        AVP_BY_NAME_AND_VENDOR,                                                         \
                        &(_rulearray)[__ar].avp_vendor_plus_name,                                       \
                        &__data.rule_avp, 0 ) );                                                        \
                if ( !__data.rule_avp ) {                                                               \
                        TRACE_DEBUG(INFO, "AVP Not found: '%s'", (_rulearray)[__ar].avp_vendor_plus_name.avp_name);             \
                        return ENOENT;                                                                  \
                }                                                                                       \
                {                                                                                       \
                         int _ret = fd_dict_new( fd_g_config->cnf_dict, DICT_RULE, &(__data), (_parent), NULL ); \
                         if ( _ret != 0 && _ret != EEXIST )      {                                      \
                                TRACE_DEBUG(INFO, "Error on rule with AVP '%s'",                        \
                                            (_rulearray)[__ar].avp_vendor_plus_name.avp_name);          \
                                return EINVAL;                                                          \
                         }                                                                              \
                }                                                                                       \
        }                                                                                               \
}

#define CHECK_vendor_new( _data ) { \
        struct dict_object * vendor_found; \
        if (fd_dict_search(fd_g_config->cnf_dict,DICT_VENDOR,VENDOR_BY_ID,&_data.vendor_id,&vendor_found,ENOENT) == ENOENT) { \
                CHECK_FCT(fd_dict_new(fd_g_config->cnf_dict, DICT_VENDOR, &_data, NULL, NULL)); \
        } \
}

#define enumval_def_u32( _val_, _str_ )		\
    { _str_, 		{ .u32 = _val_ }}

#define enumval_def_os( _len_, _val_, _str_ )				\
    { _str_, 		{ .os = { .data = (unsigned char *)_val_, .len = _len_ }}}


static int dict_ts29212_avps_load_defs(char * conffile)
{
   TRACE_ENTRY("%p", conffile);
	/* Application Section */
	{
		/* Create the vendors */		{
			struct dict_vendor_data vendor_data = { 10415, "3GPP" };
			CHECK_dict_new(DICT_VENDOR, &vendor_data, NULL, NULL)
		}
	}


   /* AVP section */
   {
		struct dict_object * Address_type;
		struct dict_object * UTF8String_type;
		struct dict_object * DiameterIdentity_type;
		struct dict_object * DiameterURI_type;
		struct dict_object * Time_type;
		struct dict_object * IPFilterRule_type;

		CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "Address", &Address_type);
		CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "UTF8String", &UTF8String_type);
		CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "DiameterIdentity", &DiameterIdentity_type);
		CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "DiameterURI", &DiameterURI_type);
		CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "Time", &Time_type);
		CHECK_dict_search( DICT_TYPE, TYPE_BY_NAME, "IPFilterRule", &IPFilterRule_type);
		/* 3GPP-PS-Data-Off-Status */
		{
			struct dict_avp_data data = {
				2847,	/* Code */
				10415,	/* Vendor */
				"3GPP-PS-Data-Off-Status",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(3GPP-PS-Data-Off-Status)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "ACTIVE", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "INACTIVE", { .i32=1 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Access-Availability-Change-Reason */
		{
			struct dict_avp_data data = {
				2833,	/* Code */
				10415,	/* Vendor */
				"Access-Availability-Change-Reason",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_UNSIGNED32	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* AN-GW-Address */
		{
			struct dict_avp_data data = {
				1050,	/* Code */
				10415,	/* Vendor */
				"AN-GW-Address",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, Address_type, NULL);
		};
		/* AN-GW-Status */
		{
			struct dict_avp_data data = {
				2811,	/* Code */
				10415,	/* Vendor */
				"AN-GW-Status",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(AN-GW-Status)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "AN_GW_FAILED", { .i32=0 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* APN-Aggregate-Max-Bitrate-DL */
		{
			struct dict_avp_data data = {
				1040,	/* Code */
				10415,	/* Vendor */
				"APN-Aggregate-Max-Bitrate-DL",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_UNSIGNED32	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* APN-Aggregate-Max-Bitrate-UL */
		{
			struct dict_avp_data data = {
				1041,	/* Code */
				10415,	/* Vendor */
				"APN-Aggregate-Max-Bitrate-UL",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_UNSIGNED32	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* Bearer-Control-Mode */
		{
			struct dict_avp_data data = {
				1023,	/* Code */
				10415,	/* Vendor */
				"Bearer-Control-Mode",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Bearer-Control-Mode)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "UE_ONLY", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "RESERVED", { .i32=1 }};
			struct dict_enumval_data        t_3 = { "UE_NW", { .i32=2 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Bearer-Identifier */
		{
			struct dict_avp_data data = {
				1020,	/* Code */
				10415,	/* Vendor */
				"Bearer-Identifier",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* Bearer-Operation */
		{
			struct dict_avp_data data = {
				1021,	/* Code */
				10415,	/* Vendor */
				"Bearer-Operation",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Bearer-Operation)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "TERMINATION", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "ESTABLISHMENT", { .i32=1 }};
			struct dict_enumval_data        t_3 = { "MODIFICATION", { .i32=2 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Bearer-Usage */
		{
			struct dict_avp_data data = {
				1000,	/* Code */
				10415,	/* Vendor */
				"Bearer-Usage",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Bearer-Usage)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "GENERAL", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "IMS_SIGNALLING", { .i32=1 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Charging-Correlation-Indicator */
		{
			struct dict_avp_data data = {
				1073,	/* Code */
				10415,	/* Vendor */
				"Charging-Correlation-Indicator",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Charging-Correlation-Indicator)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "CHARGING_IDENTIFIER_REQUIRED", { .i32=0 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Charging-Rule-Base-Name */
		{
			struct dict_avp_data data = {
				1004,	/* Code */
				10415,	/* Vendor */
				"Charging-Rule-Base-Name",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
		};
		/* Charging-Rule-Name */
		{
			struct dict_avp_data data = {
				1005,	/* Code */
				10415,	/* Vendor */
				"Charging-Rule-Name",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* CoA-IP-Address */
		{
			struct dict_avp_data data = {
				1035,	/* Code */
				10415,	/* Vendor */
				"CoA-IP-Address",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, Address_type, NULL);
		};
		/* Credit-Management-Status */
		{
			struct dict_avp_data data = {
				1082,	/* Code */
				10415,	/* Vendor */
				"Credit-Management-Status",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_UNSIGNED32	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* CSG-Information-Reporting */
		{
			struct dict_avp_data data = {
				1071,	/* Code */
				10415,	/* Vendor */
				"CSG-Information-Reporting",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(CSG-Information-Reporting)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "CHANGE_CSG_CELL", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "CHANGE_CSG_SUBSCRIBED_HYBRID_CELL", { .i32=1 }};
			struct dict_enumval_data        t_3 = { "CHANGE_CSG_UNSUBSCRIBED_HYBRID_CELL", { .i32=2 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Default-Access */
		{
			struct dict_avp_data data = {
				2829,	/* Code */
				10415,	/* Vendor */
				"Default-Access",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Default-Access)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "GPP_GPRS", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "DOCSIS", { .i32=1 }};
			struct dict_enumval_data        t_3 = { "xDSL", { .i32=2 }};
			struct dict_enumval_data        t_4 = { "WiMAX", { .i32=3 }};
			struct dict_enumval_data        t_5 = { "GPP2", { .i32=4 }};
			struct dict_enumval_data        t_6 = { "GPP_EPS", { .i32=5 }};
			struct dict_enumval_data        t_7 = { "Non_3GPP_EPS", { .i32=6 }};
			struct dict_enumval_data        t_8 = { "FBA", { .i32=7 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_6, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_7, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_8, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Default-Bearer-Indication */
		{
			struct dict_avp_data data = {
				2844,	/* Code */
				10415,	/* Vendor */
				"Default-Bearer-Indication",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Default-Bearer-Indication)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "BIND_TO_DEF_BEARER", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "BIND_TO_APPLICABLE_BEARER", { .i32=1 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Default-QoS-Name */
		{
			struct dict_avp_data data = {
				2817,	/* Code */
				10415,	/* Vendor */
				"Default-QoS-Name",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
		};
		/* Event-Trigger */
		{
			struct dict_avp_data data = {
				1006,	/* Code */
				10415,	/* Vendor */
				"Event-Trigger",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Event-Trigger)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "SGSN_CHANGE", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "QOS_CHANGE", { .i32=1 }};
			struct dict_enumval_data        t_3 = { "QOS_CHANGE_EXCEEDING_AUTHORIZATION", { .i32=11 }};
			struct dict_enumval_data        t_4 = { "RAI_CHANGE", { .i32=12 }};
			struct dict_enumval_data        t_5 = { "USER_LOCATION_CHANGE", { .i32=13 }};
			struct dict_enumval_data        t_6 = { "NO_EVENT_TRIGGERS", { .i32=14 }};
			struct dict_enumval_data        t_7 = { "OUT_OF_CREDIT", { .i32=15 }};
			struct dict_enumval_data        t_8 = { "REALLOCATION_OF_CREDIT", { .i32=16 }};
			struct dict_enumval_data        t_9 = { "REVALIDATION_TIMEOUT", { .i32=17 }};
			struct dict_enumval_data        t_10 = { "UE_IP_ADDRESS_ALLOCATE", { .i32=18 }};
			struct dict_enumval_data        t_11 = { "UE_IP_ADDRESS_RELEASE", { .i32=19 }};
			struct dict_enumval_data        t_12 = { "RAT_CHANGE", { .i32=2 }};
			struct dict_enumval_data        t_13 = { "DEFAULT_EPS_BEARER_QOS_CHANGE", { .i32=20 }};
			struct dict_enumval_data        t_14 = { "AN_GW_CHANGE", { .i32=21 }};
			struct dict_enumval_data        t_15 = { "SUCCESSFUL_RESOURCE_ALLOCATION", { .i32=22 }};
			struct dict_enumval_data        t_16 = { "RESOURCE_MODIFICATION_REQUEST", { .i32=23 }};
			struct dict_enumval_data        t_17 = { "PGW_TRACE_CONTROL", { .i32=24 }};
			struct dict_enumval_data        t_18 = { "UE_TIME_ZONE_CHANGE", { .i32=25 }};
			struct dict_enumval_data        t_19 = { "TAI_CHANGE", { .i32=26 }};
			struct dict_enumval_data        t_20 = { "ECGI_CHANGE", { .i32=27 }};
			struct dict_enumval_data        t_21 = { "CHARGING_CORRELATION_EXCHANGE", { .i32=28 }};
			struct dict_enumval_data        t_22 = { "APN_AMBR_MODIFICATION_FAILURE", { .i32=29 }};
			struct dict_enumval_data        t_23 = { "TFT_CHANGE", { .i32=3 }};
			struct dict_enumval_data        t_24 = { "USER_CSG_INFORMATION_CHANGE", { .i32=30 }};
			struct dict_enumval_data        t_25 = { "USAGE_REPORT", { .i32=33 }};
			struct dict_enumval_data        t_26 = { "DEFAULT_EPS_BEARER_QOS_MODIFICATION_FAILURE", { .i32=34 }};
			struct dict_enumval_data        t_27 = { "USER_CSG_HYBRID_SUBSCRIBED_INFORMATION_CHANGE", { .i32=35 }};
			struct dict_enumval_data        t_28 = { "HYBRID_UNSUBSCRIBED_INFORMATION_CHANGE", { .i32=36 }};
			struct dict_enumval_data        t_29 = { "ROUTING_RULE_CHANGE", { .i32=37 }};
			struct dict_enumval_data        t_30 = { "APPLICATION_START", { .i32=39 }};
			struct dict_enumval_data        t_31 = { "PLMN_CHANGE", { .i32=4 }};
			struct dict_enumval_data        t_32 = { "APPLICATION_STOP", { .i32=40 }};
			struct dict_enumval_data        t_33 = { "CS_TO_PS_HANDOVER", { .i32=42 }};
			struct dict_enumval_data        t_34 = { "UE_LOCAL_IP_ADDRESS_CHANGE", { .i32=43 }};
			struct dict_enumval_data        t_35 = { "NB_LOCAL_IP_ADDRESS_CHANGE", { .i32=44 }};
			struct dict_enumval_data        t_36 = { "ACCESS_NETWORK_INFO_REPORT", { .i32=45 }};
			struct dict_enumval_data        t_37 = { "CREDIT_MANAGEMENT_SESSION_FAILURE", { .i32=46 }};
			struct dict_enumval_data        t_38 = { "DEFAULT_QOS_CHANGE", { .i32=47 }};
			struct dict_enumval_data        t_39 = { "CHANGE_OF_UE_PRESENCE_IN_PRESENCE_REPORTING_AREA_REPORT", { .i32=48 }};
			struct dict_enumval_data        t_40 = { "ADDITION_OF_ACCESS", { .i32=49 }};
			struct dict_enumval_data        t_41 = { "LOSS_OF_BEARER", { .i32=5 }};
			struct dict_enumval_data        t_42 = { "REMOVAL_OF_ACCESS", { .i32=50 }};
			struct dict_enumval_data        t_43 = { "UNAVAILABLITY_OF_ACCESS", { .i32=51 }};
			struct dict_enumval_data        t_44 = { "AVAILABLITY_OF_ACCESS", { .i32=52 }};
			struct dict_enumval_data        t_45 = { "RESOURCE_RELEASE", { .i32=53 }};
			struct dict_enumval_data        t_46 = { "ENODEB_CHANGE", { .i32=54 }};
			struct dict_enumval_data        t_47 = { "GPP_PS_DATA_OFF_CHANGE", { .i32=55 }};
			struct dict_enumval_data        t_48 = { "RECOVERY_OF_BEARER", { .i32=6 }};
			struct dict_enumval_data        t_49 = { "IP_CAN_CHANGE", { .i32=7 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_6, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_7, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_8, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_9, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_10, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_11, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_12, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_13, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_14, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_15, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_16, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_17, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_18, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_19, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_20, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_21, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_22, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_23, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_24, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_25, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_26, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_27, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_28, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_29, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_30, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_31, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_32, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_33, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_34, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_35, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_36, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_37, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_38, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_39, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_40, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_41, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_42, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_43, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_44, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_45, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_46, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_47, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_48, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_49, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Execution-Time */
		{
			struct dict_avp_data data = {
				2839,	/* Code */
				10415,	/* Vendor */
				"Execution-Time",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, Time_type, NULL);
		};
		/* Flow-Direction */
		{
			struct dict_avp_data data = {
				1080,	/* Code */
				10415,	/* Vendor */
				"Flow-Direction",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Flow-Direction)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "UNSPECIFIED", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "DOWNLINK", { .i32=1 }};
			struct dict_enumval_data        t_3 = { "UPLINK", { .i32=2 }};
			struct dict_enumval_data        t_4 = { "BIDIRECTIONAL", { .i32=3 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Flow-Label */
		{
			struct dict_avp_data data = {
				1057,	/* Code */
				10415,	/* Vendor */
				"Flow-Label",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* Guaranteed-Bitrate-DL */
		{
			struct dict_avp_data data = {
				1025,	/* Code */
				10415,	/* Vendor */
				"Guaranteed-Bitrate-DL",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_UNSIGNED32	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* Guaranteed-Bitrate-UL */
		{
			struct dict_avp_data data = {
				1026,	/* Code */
				10415,	/* Vendor */
				"Guaranteed-Bitrate-UL",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_UNSIGNED32	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* HeNB-Local-IP-Address */
		{
			struct dict_avp_data data = {
				2804,	/* Code */
				10415,	/* Vendor */
				"HeNB-Local-IP-Address",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, Address_type, NULL);
		};
		/* IP-CAN-Session-Charging-Scope */
		{
			struct dict_avp_data data = {
				2827,	/* Code */
				10415,	/* Vendor */
				"IP-CAN-Session-Charging-Scope",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(IP-CAN-Session-Charging-Scope)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "IP_CAN_SESSION_SCOPE", { .i32=0 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* IP-CAN-Type */
		{
			struct dict_avp_data data = {
				1027,	/* Code */
				10415,	/* Vendor */
				"IP-CAN-Type",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(IP-CAN-Type)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "GPP_GPRS", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "DOCSIS", { .i32=1 }};
			struct dict_enumval_data        t_3 = { "xDSL", { .i32=2 }};
			struct dict_enumval_data        t_4 = { "WiMAX", { .i32=3 }};
			struct dict_enumval_data        t_5 = { "GPP2", { .i32=4 }};
			struct dict_enumval_data        t_6 = { "GPP_EPS", { .i32=5 }};
			struct dict_enumval_data        t_7 = { "Non_3GPP_EPS", { .i32=6 }};
			struct dict_enumval_data        t_8 = { "FBA", { .i32=7 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_6, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_7, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_8, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Metering-Method */
		{
			struct dict_avp_data data = {
				1007,	/* Code */
				10415,	/* Vendor */
				"Metering-Method",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Metering-Method)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "DURATION", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "VOLUME", { .i32=1 }};
			struct dict_enumval_data        t_3 = { "DURATION_VOLUME", { .i32=2 }};
			struct dict_enumval_data        t_4 = { "EVENT", { .i32=3 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Monitoring-Flags */
		{
			struct dict_avp_data data = {
				2828,	/* Code */
				10415,	/* Vendor */
				"Monitoring-Flags",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_UNSIGNED32	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* Monitoring-Key */
		{
			struct dict_avp_data data = {
				1066,	/* Code */
				10415,	/* Vendor */
				"Monitoring-Key",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* Mute-Notification */
		{
			struct dict_avp_data data = {
				2809,	/* Code */
				10415,	/* Vendor */
				"Mute-Notification",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Mute-Notification)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "MUTE_REQUIRED", { .i32=0 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Monitoring-Time */
		{
			struct dict_avp_data data = {
				2810,	/* Code */
				10415,	/* Vendor */
				"Monitoring-Time",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, Time_type, NULL);
		};
		/* NBIFOM-Mode */
		{
			struct dict_avp_data data = {
				2830,	/* Code */
				10415,	/* Vendor */
				"NBIFOM-Mode",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(NBIFOM-Mode)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "UE_INITIATED", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "NETWORK_INITIATED", { .i32=1 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* NBIFOM-Support */
		{
			struct dict_avp_data data = {
				2831,	/* Code */
				10415,	/* Vendor */
				"NBIFOM-Support",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(NBIFOM-Support)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "NBIFOM_NOT_SUPPORTED", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "NBIFOM_SUPPORTED", { .i32=1 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* NetLoc-Access-Support */
		{
			struct dict_avp_data data = {
				2824,	/* Code */
				10415,	/* Vendor */
				"NetLoc-Access-Support",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_UNSIGNED32	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* Network-Request-Support */
		{
			struct dict_avp_data data = {
				1024,	/* Code */
				10415,	/* Vendor */
				"Network-Request-Support",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Network-Request-Support)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "NETWORK_REQUEST_NOT_SUPPORTED", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "NETWORK_REQUEST_SUPPORTED", { .i32=1 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Offline */
		{
			struct dict_avp_data data = {
				1008,	/* Code */
				10415,	/* Vendor */
				"Offline",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Offline)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "DISABLE_OFFLINE", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "ENABLE_OFFLINE", { .i32=1 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Online */
		{
			struct dict_avp_data data = {
				1009,	/* Code */
				10415,	/* Vendor */
				"Online",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Online)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "DISABLE_ONLINE", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "ENABLE_ONLINE", { .i32=1 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Packet-Filter-Content */
		{
			struct dict_avp_data data = {
				1059,	/* Code */
				10415,	/* Vendor */
				"Packet-Filter-Content",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, IPFilterRule_type, NULL);
		};
		/* Packet-Filter-Identifier */
		{
			struct dict_avp_data data = {
				1060,	/* Code */
				10415,	/* Vendor */
				"Packet-Filter-Identifier",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* Packet-Filter-Operation */
		{
			struct dict_avp_data data = {
				1062,	/* Code */
				10415,	/* Vendor */
				"Packet-Filter-Operation",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Packet-Filter-Operation)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "DELETION", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "ADDITION", { .i32=1 }};
			struct dict_enumval_data        t_3 = { "MODIFICATION", { .i32=2 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Packet-Filter-Usage */
		{
			struct dict_avp_data data = {
				1072,	/* Code */
				10415,	/* Vendor */
				"Packet-Filter-Usage",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Packet-Filter-Usage)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "SEND_TO_UE", { .i32=1 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* PCC-Rule-Status */
		{
			struct dict_avp_data data = {
				1019,	/* Code */
				10415,	/* Vendor */
				"PCC-Rule-Status",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(PCC-Rule-Status)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "ACTIVE", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "INACTIVE", { .i32=1 }};
			struct dict_enumval_data        t_3 = { "TEMPORARILY_INACTIVE", { .i32=2 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* PDN-Connection-ID */
		{
			struct dict_avp_data data = {
				1065,	/* Code */
				10415,	/* Vendor */
				"PDN-Connection-ID",	/* Name */
				AVP_FLAG_VENDOR,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* Precedence */
		{
			struct dict_avp_data data = {
				1010,	/* Code */
				10415,	/* Vendor */
				"Precedence",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_UNSIGNED32	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* Pre-emption-Capability */
		{
			struct dict_avp_data data = {
				1047,	/* Code */
				10415,	/* Vendor */
				"Pre-emption-Capability",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Pre-emption-Capability)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "PRE_EMPTION_CAPABILITY_ENABLED", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "PRE_EMPTION_CAPABILITY_DISABLED", { .i32=1 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Pre-emption-Vulnerability */
		{
			struct dict_avp_data data = {
				1048,	/* Code */
				10415,	/* Vendor */
				"Pre-emption-Vulnerability",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Pre-emption-Vulnerability)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "PRE_EMPTION_VULNERABILITY_ENABLED", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "PRE_EMPTION_VULNERABILITY_DISABLED", { .i32=1 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Presence-Reporting-Area-Elements-List */
		{
			struct dict_avp_data data = {
				2820,	/* Code */
				10415,	/* Vendor */
				"Presence-Reporting-Area-Elements-List",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* Presence-Reporting-Area-Identifier */
		{
			struct dict_avp_data data = {
				2821,	/* Code */
				10415,	/* Vendor */
				"Presence-Reporting-Area-Identifier",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* Presence-Reporting-Area-Status */
		{
			struct dict_avp_data data = {
				2823,	/* Code */
				10415,	/* Vendor */
				"Presence-Reporting-Area-Status",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_UNSIGNED32	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* Priority-Level */
		{
			struct dict_avp_data data = {
				1046,	/* Code */
				10415,	/* Vendor */
				"Priority-Level",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_UNSIGNED32	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* PS-to-CS-Session-Continuity */
		{
			struct dict_avp_data data = {
				1099,	/* Code */
				10415,	/* Vendor */
				"PS-to-CS-Session-Continuity",	/* Name */
				AVP_FLAG_VENDOR,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(PS-to-CS-Session-Continuity)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "VIDEO_PS2CS_CONT_CANDIDATE", { .i32=0 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* QoS-Class-Identifier */
		{
			struct dict_avp_data data = {
				1028,	/* Code */
				10415,	/* Vendor */
				"QoS-Class-Identifier",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(QoS-Class-Identifier)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "QCI_1", { .i32=1 }};
			struct dict_enumval_data        t_2 = { "QCI_2", { .i32=2 }};
			struct dict_enumval_data        t_3 = { "QCI_3", { .i32=3 }};
			struct dict_enumval_data        t_4 = { "QCI_4", { .i32=4 }};
			struct dict_enumval_data        t_5 = { "QCI_5", { .i32=5 }};
			struct dict_enumval_data        t_6 = { "QCI_6", { .i32=6 }};
			struct dict_enumval_data        t_7 = { "QCI_65", { .i32=65 }};
			struct dict_enumval_data        t_8 = { "QCI_66", { .i32=66 }};
			struct dict_enumval_data        t_9 = { "QCI_69", { .i32=69 }};
			struct dict_enumval_data        t_10 = { "QCI_7", { .i32=7 }};
			struct dict_enumval_data        t_11 = { "QCI_70", { .i32=70 }};
			struct dict_enumval_data        t_12 = { "QCI_75", { .i32=75 }};
			struct dict_enumval_data        t_13 = { "QCI_79", { .i32=79 }};
			struct dict_enumval_data        t_14 = { "QCI_8", { .i32=8 }};
			struct dict_enumval_data        t_15 = { "QCI_9", { .i32=9 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_6, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_7, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_8, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_9, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_10, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_11, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_12, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_13, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_14, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_15, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* QoS-Negotiation */
		{
			struct dict_avp_data data = {
				1029,	/* Code */
				10415,	/* Vendor */
				"QoS-Negotiation",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(QoS-Negotiation)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "NO_QoS_NEGOTIATION", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "QoS_NEGOTIATION_SUPPORTED", { .i32=1 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* QoS-Upgrade */
		{
			struct dict_avp_data data = {
				1030,	/* Code */
				10415,	/* Vendor */
				"QoS-Upgrade",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(QoS-Upgrade)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "QoS_UPGRADE_NOT_SUPPORTED", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "QoS_UPGRADE_SUPPORTED", { .i32=1 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* RAN-NAS-Release-Cause */
		{
			struct dict_avp_data data = {
				2819,	/* Code */
				10415,	/* Vendor */
				"RAN-NAS-Release-Cause",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* RAN-Rule-Support */
		{
			struct dict_avp_data data = {
				2832,	/* Code */
				10415,	/* Vendor */
				"RAN-Rule-Support",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_UNSIGNED32	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* RAT-Type */
		{
			struct dict_avp_data data = {
				1032,	/* Code */
				10415,	/* Vendor */
				"RAT-Type",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(RAT-Type)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "WLAN", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "VIRTUAL", { .i32=1 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Redirect-Support */
		{
			struct dict_avp_data data = {
				1086,	/* Code */
				10415,	/* Vendor */
				"Redirect-Support",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Redirect-Support)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "REDIRECTION_DISABLED", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "REDIRECTION_ENABLED", { .i32=1 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Removal-Of-Access */
		{
			struct dict_avp_data data = {
				2842,	/* Code */
				10415,	/* Vendor */
				"Removal-Of-Access",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Removal-Of-Access)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "REMOVAL_OF_ACCESS", { .i32=0 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Reporting-Level */
		{
			struct dict_avp_data data = {
				1011,	/* Code */
				10415,	/* Vendor */
				"Reporting-Level",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Reporting-Level)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "SERVICE_IDENTIFIER_LEVEL", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "RATING_GROUP_LEVEL", { .i32=1 }};
			struct dict_enumval_data        t_3 = { "SPONSORED_CONNECTIVITY_LEVEL", { .i32=2 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Resource-Allocation-Notification */
		{
			struct dict_avp_data data = {
				1063,	/* Code */
				10415,	/* Vendor */
				"Resource-Allocation-Notification",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Resource-Allocation-Notification)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "ENABLE_NOTIFICATION", { .i32=0 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Resource-Release-Notification */
		{
			struct dict_avp_data data = {
				2841,	/* Code */
				10415,	/* Vendor */
				"Resource-Release-Notification",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Resource-Release-Notification)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "ENABLE_NOTIFICATION", { .i32=0 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Revalidation-Time */
		{
			struct dict_avp_data data = {
				1042,	/* Code */
				10415,	/* Vendor */
				"Revalidation-Time",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, Time_type, NULL);
		};
		/* Routing-IP-Address */
		{
			struct dict_avp_data data = {
				1079,	/* Code */
				10415,	/* Vendor */
				"Routing-IP-Address",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, Address_type, NULL);
		};
		/* Routing-Rule-Identifier */
		{
			struct dict_avp_data data = {
				1077,	/* Code */
				10415,	/* Vendor */
				"Routing-Rule-Identifier",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* Routing-Rule-Failure-Code */
		{
			struct dict_avp_data data = {
				2834,	/* Code */
				10415,	/* Vendor */
				"Routing-Rule-Failure-Code",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_UNSIGNED32	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* Rule-Activation-Time */
		{
			struct dict_avp_data data = {
				1043,	/* Code */
				10415,	/* Vendor */
				"Rule-Activation-Time",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, Time_type, NULL);
		};
		/* Rule-Deactivation-Time */
		{
			struct dict_avp_data data = {
				1044,	/* Code */
				10415,	/* Vendor */
				"Rule-Deactivation-Time",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, Time_type, NULL);
		};
		/* Rule-Failure-Code */
		{
			struct dict_avp_data data = {
				1031,	/* Code */
				10415,	/* Vendor */
				"Rule-Failure-Code",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Rule-Failure-Code)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "UNKNOWN_RULE_NAME", { .i32=1 }};
			struct dict_enumval_data        t_2 = { "RESOURCE_ALLOCATION_FAILURE", { .i32=10 }};
			struct dict_enumval_data        t_3 = { "UNSUCCESSFUL_QOS_VALIDATION", { .i32=11 }};
			struct dict_enumval_data        t_4 = { "INCORRECT_FLOW_INFORMATION", { .i32=12 }};
			struct dict_enumval_data        t_5 = { "PS_TO_CS_HANDOVER", { .i32=13 }};
			struct dict_enumval_data        t_6 = { "TDF_APPLICATION_IDENTIFIER_ERROR", { .i32=14 }};
			struct dict_enumval_data        t_7 = { "NO_BEARER_BOUND", { .i32=15 }};
			struct dict_enumval_data        t_8 = { "FILTER_RESTRICTIONS", { .i32=16 }};
			struct dict_enumval_data        t_9 = { "AN_GW_FAILED", { .i32=17 }};
			struct dict_enumval_data        t_10 = { "MISSING_REDIRECT_SERVER_ADDRESS", { .i32=18 }};
			struct dict_enumval_data        t_11 = { "CM_END_USER_SERVICE_DENIED", { .i32=19 }};
			struct dict_enumval_data        t_12 = { "RATING_GROUP_ERROR", { .i32=2 }};
			struct dict_enumval_data        t_13 = { "CM_CREDIT_CONTROL_NOT_APPLICABLE", { .i32=20 }};
			struct dict_enumval_data        t_14 = { "CM_AUTHORIZATION_REJECTED", { .i32=21 }};
			struct dict_enumval_data        t_15 = { "CM_USER_UNKNOWN", { .i32=22 }};
			struct dict_enumval_data        t_16 = { "CM_RATING_FAILED", { .i32=23 }};
			struct dict_enumval_data        t_17 = { "ROUTING_RULE_REJECTION", { .i32=24 }};
			struct dict_enumval_data        t_18 = { "NO_NBIFOM_SUPPORT", { .i32=25 }};
			struct dict_enumval_data        t_19 = { "SERVICE_IDENTIFIER_ERROR", { .i32=3 }};
			struct dict_enumval_data        t_20 = { "GW_PCEF_MALFUNCTION", { .i32=4 }};
			struct dict_enumval_data        t_21 = { "RESOURCES_LIMITATION", { .i32=5 }};
			struct dict_enumval_data        t_22 = { "MAX_NR_BEARERS_REACHED", { .i32=6 }};
			struct dict_enumval_data        t_23 = { "UNKNOWN_BEARER_ID", { .i32=7 }};
			struct dict_enumval_data        t_24 = { "MISSING_BEARER_ID", { .i32=8 }};
			struct dict_enumval_data        t_25 = { "MISSING_FLOW_INFORMATION", { .i32=9 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_6, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_7, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_8, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_9, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_10, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_11, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_12, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_13, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_14, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_15, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_16, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_17, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_18, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_19, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_20, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_21, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_22, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_23, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_24, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_25, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Security-Parameter-Index */
		{
			struct dict_avp_data data = {
				1056,	/* Code */
				10415,	/* Vendor */
				"Security-Parameter-Index",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* Session-Release-Cause */
		{
			struct dict_avp_data data = {
				1045,	/* Code */
				10415,	/* Vendor */
				"Session-Release-Cause",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Session-Release-Cause)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "UNSPECIFIED_REASON", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "UE_SUBSCRIPTION_REASON", { .i32=1 }};
			struct dict_enumval_data        t_3 = { "INSUFFICIENT_SERVER_RESOURCES", { .i32=2 }};
			struct dict_enumval_data        t_4 = { "IP_CAN_SESSION_TERMINATION", { .i32=3 }};
			struct dict_enumval_data        t_5 = { "UE_IP_ADDRESS_RELEASE", { .i32=4 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_4, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_5, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* TCP-Source-Port */
		{
			struct dict_avp_data data = {
				2843,	/* Code */
				10415,	/* Vendor */
				"TCP-Source-Port",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_UNSIGNED32	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* TDF-Application-Identifier */
		{
			struct dict_avp_data data = {
				1088,	/* Code */
				10415,	/* Vendor */
				"TDF-Application-Identifier",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* TDF-Application-Instance-Identifier */
		{
			struct dict_avp_data data = {
				2802,	/* Code */
				10415,	/* Vendor */
				"TDF-Application-Instance-Identifier",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* TDF-Destination-Host */
		{
			struct dict_avp_data data = {
				1089,	/* Code */
				10415,	/* Vendor */
				"TDF-Destination-Host",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, DiameterIdentity_type, NULL);
		};
		/* TDF-Destination-Realm */
		{
			struct dict_avp_data data = {
				1090,	/* Code */
				10415,	/* Vendor */
				"TDF-Destination-Realm",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, DiameterIdentity_type, NULL);
		};
		/* TDF-IP-Address */
		{
			struct dict_avp_data data = {
				1091,	/* Code */
				10415,	/* Vendor */
				"TDF-IP-Address",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, Address_type, NULL);
		};
		/* TFT-Filter */
		{
			struct dict_avp_data data = {
				1012,	/* Code */
				10415,	/* Vendor */
				"TFT-Filter",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, IPFilterRule_type, NULL);
		};
		/* Traffic-Steering-Policy-Identifier-DL */
		{
			struct dict_avp_data data = {
				2836,	/* Code */
				10415,	/* Vendor */
				"Traffic-Steering-Policy-Identifier-DL",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* Traffic-Steering-Policy-Identifier-UL */
		{
			struct dict_avp_data data = {
				2837,	/* Code */
				10415,	/* Vendor */
				"Traffic-Steering-Policy-Identifier-UL",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* ToS-Traffic-Class */
		{
			struct dict_avp_data data = {
				1014,	/* Code */
				10415,	/* Vendor */
				"ToS-Traffic-Class",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* Tunnel-Header-Filter */
		{
			struct dict_avp_data data = {
				1036,	/* Code */
				10415,	/* Vendor */
				"Tunnel-Header-Filter",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, IPFilterRule_type, NULL);
		};
		/* Tunnel-Header-Length */
		{
			struct dict_avp_data data = {
				1037,	/* Code */
				10415,	/* Vendor */
				"Tunnel-Header-Length",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_UNSIGNED32	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* UDP-Source-Port */
		{
			struct dict_avp_data data = {
				2806,	/* Code */
				10415,	/* Vendor */
				"UDP-Source-Port",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_UNSIGNED32	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* UE-Local-IP-Address */
		{
			struct dict_avp_data data = {
				2805,	/* Code */
				10415,	/* Vendor */
				"UE-Local-IP-Address",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, Address_type, NULL);
		};
		/* Usage-Monitoring-Level */
		{
			struct dict_avp_data data = {
				1068,	/* Code */
				10415,	/* Vendor */
				"Usage-Monitoring-Level",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Usage-Monitoring-Level)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "SESSION_LEVEL", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "PCC_RULE_LEVEL", { .i32=1 }};
			struct dict_enumval_data        t_3 = { "ADC_RULE_LEVEL", { .i32=2 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Usage-Monitoring-Report */
		{
			struct dict_avp_data data = {
				1069,	/* Code */
				10415,	/* Vendor */
				"Usage-Monitoring-Report",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Usage-Monitoring-Report)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "USAGE_MONITORING_REPORT_REQUIRED", { .i32=0 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Usage-Monitoring-Support */
		{
			struct dict_avp_data data = {
				1070,	/* Code */
				10415,	/* Vendor */
				"Usage-Monitoring-Support",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Usage-Monitoring-Support)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "USAGE_MONITORING_DISABLED", { .i32=0 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* User-Location-Info-Time */
		{
			struct dict_avp_data data = {
				2812,	/* Code */
				10415,	/* Vendor */
				"User-Location-Info-Time",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, Time_type, NULL);
		};
		/* PCSCF-Restoration-Indication */
		{
			struct dict_avp_data data = {
				2826,	/* Code */
				10415,	/* Vendor */
				"PCSCF-Restoration-Indication",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_UNSIGNED32	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* QoS-Rule-Name */
		{
			struct dict_avp_data data = {
				1054,	/* Code */
				10415,	/* Vendor */
				"QoS-Rule-Name",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* QoS-Rule-Base-Name */
		{
			struct dict_avp_data data = {
				1074,	/* Code */
				10415,	/* Vendor */
				"QoS-Rule-Base-Name",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
		};
		/* Session-Linking-Indicator */
		{
			struct dict_avp_data data = {
				1064,	/* Code */
				10415,	/* Vendor */
				"Session-Linking-Indicator",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(Session-Linking-Indicator)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "UE_ONLY", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "RESERVED", { .i32=1 }};
			struct dict_enumval_data        t_3 = { "UE_NW", { .i32=2 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_3, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* ADC-Rule-Base-Name */
		{
			struct dict_avp_data data = {
				1095,	/* Code */
				10415,	/* Vendor */
				"ADC-Rule-Base-Name",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, UTF8String_type, NULL);
		};
		/* ADC-Rule-Name */
		{
			struct dict_avp_data data = {
				1096,	/* Code */
				10415,	/* Vendor */
				"ADC-Rule-Name",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* Request-Type */
		{
			struct dict_avp_data data = {
				2838,	/* Code */
				10415,	/* Vendor */
				"Request-Type",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_UNSIGNED32	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* CS-Service-QoS-Request-Identifier */
		{
			struct dict_avp_data data = {
				2807,	/* Code */
				10415,	/* Vendor */
				"CS-Service-QoS-Request-Identifier",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_OCTETSTRING	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data, NULL, NULL);
		};
		/* CS-Service-QoS-Request-Operation */
		{
			struct dict_avp_data data = {
				2808,	/* Code */
				10415,	/* Vendor */
				"CS-Service-QoS-Request-Operation",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(CS-Service-QoS-Request-Operation)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "DELETION", { .i32=0 }};
			struct dict_enumval_data        t_2 = { "MODIFICATION", { .i32=1 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_ENUMVAL, &t_2, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* CS-Service-Resource-Failure-Cause */
		{
			struct dict_avp_data data = {
				2814,	/* Code */
				10415,	/* Vendor */
				"CS-Service-Resource-Failure-Cause",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(CS-Service-Resource-Failure-Cause)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "RESOURCE_RELEASED", { .i32=0 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* CS-Service-Resource-Result-Operation */
		{
			struct dict_avp_data data = {
				2815,	/* Code */
				10415,	/* Vendor */
				"CS-Service-Resource-Result-Operation",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_INTEGER32	/* base type of data */
			};
			struct dict_object        *type;
			struct dict_type_data     tdata = { AVP_TYPE_INTEGER32, "3GPP/Enumerated(CS-Service-Resource-Result-Operation)", NULL, NULL, NULL };
			struct dict_enumval_data        t_1 = { "DELETION", { .i32=0 }};
			/* Create the Enumerated type, and then the AVP */
			CHECK_dict_new( DICT_TYPE, &tdata, NULL, &type);
			CHECK_dict_new( DICT_ENUMVAL, &t_1, type, NULL);
			CHECK_dict_new( DICT_AVP, &data, type, NULL);
		};
		/* Charging-Rule-Remove */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1002,	/* Code */
				10415,	/* Vendor */
				"Charging-Rule-Remove",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* QoS-Rule-Report */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1055,	/* Code */
				10415,	/* Vendor */
				"QoS-Rule-Report",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* Redirect-Information */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1085,	/* Code */
				10415,	/* Vendor */
				"Redirect-Information",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* PRA-Remove */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				2846,	/* Code */
				10415,	/* Vendor */
				"PRA-Remove",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* Flow-Information */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1058,	/* Code */
				10415,	/* Vendor */
				"Flow-Information",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* Tunnel-Information */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1038,	/* Code */
				10415,	/* Vendor */
				"Tunnel-Information",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* TDF-Information */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1087,	/* Code */
				10415,	/* Vendor */
				"TDF-Information",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* Routing-Rule-Remove */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1075,	/* Code */
				10415,	/* Vendor */
				"Routing-Rule-Remove",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* CS-Service-Resource-Report */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				2813,	/* Code */
				10415,	/* Vendor */
				"CS-Service-Resource-Report",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* Presence-Reporting-Area-Information */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				2822,	/* Code */
				10415,	/* Vendor */
				"Presence-Reporting-Area-Information",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* Conditional-APN-Aggregate-Max-Bitrate */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				2818,	/* Code */
				10415,	/* Vendor */
				"Conditional-APN-Aggregate-Max-Bitrate",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* Access-Network-Charging-Identifier-Gx */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1022,	/* Code */
				10415,	/* Vendor */
				"Access-Network-Charging-Identifier-Gx",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* Allocation-Retention-Priority */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1034,	/* Code */
				10415,	/* Vendor */
				"Allocation-Retention-Priority",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* QoS-Rule-Remove */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1052,	/* Code */
				10415,	/* Vendor */
				"QoS-Rule-Remove",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* Routing-Rule-Report */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				2835,	/* Code */
				10415,	/* Vendor */
				"Routing-Rule-Report",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* TFT-Packet-Filter-Information */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1013,	/* Code */
				10415,	/* Vendor */
				"TFT-Packet-Filter-Information",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* Fixed-User-Location-Info */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				2825,	/* Code */
				10415,	/* Vendor */
				"Fixed-User-Location-Info",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* Default-QoS-Information */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				2816,	/* Code */
				10415,	/* Vendor */
				"Default-QoS-Information",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* Packet-Filter-Information */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1061,	/* Code */
				10415,	/* Vendor */
				"Packet-Filter-Information",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* Routing-Filter */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1078,	/* Code */
				10415,	/* Vendor */
				"Routing-Filter",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* ADC-Rule-Remove */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1093,	/* Code */
				10415,	/* Vendor */
				"ADC-Rule-Remove",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* QoS-Information */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1016,	/* Code */
				10415,	/* Vendor */
				"QoS-Information",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* PRA-Install */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				2845,	/* Code */
				10415,	/* Vendor */
				"PRA-Install",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* Routing-Rule-Definition */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1076,	/* Code */
				10415,	/* Vendor */
				"Routing-Rule-Definition",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* Default-EPS-Bearer-QoS */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1049,	/* Code */
				10415,	/* Vendor */
				"Default-EPS-Bearer-QoS",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* CoA-Information */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1039,	/* Code */
				10415,	/* Vendor */
				"CoA-Information",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* Application-Detection-Information */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1098,	/* Code */
				10415,	/* Vendor */
				"Application-Detection-Information",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* Conditional-Policy-Information */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				2840,	/* Code */
				10415,	/* Vendor */
				"Conditional-Policy-Information",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* Charging-Rule-Definition */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1003,	/* Code */
				10415,	/* Vendor */
				"Charging-Rule-Definition",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* Routing-Rule-Install */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1081,	/* Code */
				10415,	/* Vendor */
				"Routing-Rule-Install",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* ADC-Rule-Definition */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1094,	/* Code */
				10415,	/* Vendor */
				"ADC-Rule-Definition",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* ADC-Rule-Report */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1097,	/* Code */
				10415,	/* Vendor */
				"ADC-Rule-Report",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* QoS-Rule-Definition */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1053,	/* Code */
				10415,	/* Vendor */
				"QoS-Rule-Definition",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* Charging-Rule-Report */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1018,	/* Code */
				10415,	/* Vendor */
				"Charging-Rule-Report",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* Event-Report-Indication */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1033,	/* Code */
				10415,	/* Vendor */
				"Event-Report-Indication",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* Charging-Rule-Install */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1001,	/* Code */
				10415,	/* Vendor */
				"Charging-Rule-Install",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* QoS-Rule-Install */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1051,	/* Code */
				10415,	/* Vendor */
				"QoS-Rule-Install",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* ADC-Rule-Install */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1092,	/* Code */
				10415,	/* Vendor */
				"ADC-Rule-Install",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}
		/* Usage-Monitoring-Information */
		{
			/* Grouped */
			struct dict_object * avp;
			struct dict_avp_data data = {
				1067,	/* Code */
				10415,	/* Vendor */
				"Usage-Monitoring-Information",	/* Name */
				AVP_FLAG_VENDOR | AVP_FLAG_MANDATORY,	/* Fixed flags */
				AVP_FLAG_VENDOR,	/* Fixed flag values */
				AVP_TYPE_GROUPED	/* base type of data */
			};
			CHECK_dict_new( DICT_AVP, &data , NULL, &avp);
		}

	
   }

   /* Commands section */
   {

   }

   return 0;
}

static int dict_ts29212_avps_load_rules(char * conffile)
{
   /* Grouped AVP section */
   {
	  /* Charging-Rule-Remove */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "Charging-Rule-Remove"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "Charging-Rule-Name"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Charging-Rule-Base-Name"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Required-Access-Info"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Resource-Release-Notification"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* QoS-Rule-Report */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "QoS-Rule-Report"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "QoS-Rule-Name"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "QoS-Rule-Base-Name"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "PCC-Rule-Status"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Rule-Failure-Code"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Content-Version"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* Redirect-Information */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "Redirect-Information"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "Redirect-Support"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 0, .avp_name = "Redirect-Address-Type"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 0, .avp_name = "Redirect-Server-Address"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* PRA-Remove */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "PRA-Remove"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "Presence-Reporting-Area-Identifier"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* Flow-Information */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "Flow-Information"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "Flow-Description"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Packet-Filter-Identifier"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Packet-Filter-Usage"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "ToS-Traffic-Class"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Security-Parameter-Index"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Flow-Label"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Flow-Direction"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Routing-Rule-Identifier"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* Tunnel-Information */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "Tunnel-Information"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "Tunnel-Header-Length"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* TDF-Information */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "TDF-Information"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "TDF-Destination-Realm"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "TDF-Destination-Host"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "TDF-IP-Address"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* Routing-Rule-Remove */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "Routing-Rule-Remove"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "Routing-Rule-Identifier"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* CS-Service-Resource-Report */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "CS-Service-Resource-Report"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "CS-Service-QoS-Request-Identifier"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "CS-Service-Resource-Result-Operation"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "CS-Service-Resource-Failure-Cause"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* Presence-Reporting-Area-Information */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "Presence-Reporting-Area-Information"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "Presence-Reporting-Area-Identifier"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Presence-Reporting-Area-Status"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Presence-Reporting-Area-Elements-List"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* Conditional-APN-Aggregate-Max-Bitrate */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "Conditional-APN-Aggregate-Max-Bitrate"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "APN-Aggregate-Max-Bitrate-UL"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "APN-Aggregate-Max-Bitrate-DL"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "IP-CAN-Type"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "RAT-Type"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* Access-Network-Charging-Identifier-Gx */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "Access-Network-Charging-Identifier-Gx"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "Access-Network-Charging-Identifier-Value"}, RULE_REQUIRED, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Charging-Rule-Base-Name"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Charging-Rule-Name"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "IP-CAN-Session-Charging-Scope"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* Allocation-Retention-Priority */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "Allocation-Retention-Priority"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "Priority-Level"}, RULE_REQUIRED, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Pre-emption-Capability"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Pre-emption-Vulnerability"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* QoS-Rule-Remove */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "QoS-Rule-Remove"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "QoS-Rule-Name"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "QoS-Rule-Base-Name"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Required-Access-Info"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* Routing-Rule-Report */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "Routing-Rule-Report"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "Routing-Rule-Identifier"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "PCC-Rule-Status"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Routing-Rule-Failure-Code"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* TFT-Packet-Filter-Information */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "TFT-Packet-Filter-Information"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "Precedence"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "TFT-Filter"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "ToS-Traffic-Class"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Security-Parameter-Index"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Flow-Label"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Flow-Direction"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* Fixed-User-Location-Info */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "Fixed-User-Location-Info"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "SSID"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "BSSID"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 13019, .avp_name = "Logical-Access-Id"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 13019, .avp_name = "Physical-Access-Id"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* Default-QoS-Information */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "Default-QoS-Information"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "QoS-Class-Identifier"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Max-Requested-Bandwidth-UL"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Max-Requested-Bandwidth-DL"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Default-QoS-Name"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* Packet-Filter-Information */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "Packet-Filter-Information"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "Packet-Filter-Identifier"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Precedence"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Packet-Filter-Content"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "ToS-Traffic-Class"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Security-Parameter-Index"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Flow-Label"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Flow-Direction"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* Routing-Filter */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "Routing-Filter"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "Flow-Description"}, RULE_REQUIRED, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Flow-Direction"}, RULE_REQUIRED, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "ToS-Traffic-Class"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Security-Parameter-Index"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Flow-Label"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* ADC-Rule-Remove */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "ADC-Rule-Remove"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "ADC-Rule-Name"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "ADC-Rule-Base-Name"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* QoS-Information */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "QoS-Information"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "QoS-Class-Identifier"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Max-Requested-Bandwidth-UL"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Max-Requested-Bandwidth-DL"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Guaranteed-Bitrate-UL"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Guaranteed-Bitrate-DL"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Bearer-Identifier"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Allocation-Retention-Priority"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "APN-Aggregate-Max-Bitrate-UL"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "APN-Aggregate-Max-Bitrate-DL"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Conditional-APN-Aggregate-Max-Bitrate"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* PRA-Install */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "PRA-Install"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "Presence-Reporting-Area-Information"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* Routing-Rule-Definition */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "Routing-Rule-Definition"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "Routing-Rule-Identifier"}, RULE_REQUIRED, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Routing-Filter"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Precedence"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Routing-IP-Address"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "IP-CAN-Type"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* Default-EPS-Bearer-QoS */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "Default-EPS-Bearer-QoS"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "QoS-Class-Identifier"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Allocation-Retention-Priority"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* CoA-Information */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "CoA-Information"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "Tunnel-Information"}, RULE_REQUIRED, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "CoA-IP-Address"}, RULE_REQUIRED, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* Application-Detection-Information */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "Application-Detection-Information"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "TDF-Application-Identifier"}, RULE_REQUIRED, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "TDF-Application-Instance-Identifier"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Flow-Information"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* Conditional-Policy-Information */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "Conditional-Policy-Information"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "Execution-Time"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Default-EPS-Bearer-QoS"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "APN-Aggregate-Max-Bitrate-UL"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "APN-Aggregate-Max-Bitrate-DL"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Conditional-APN-Aggregate-Max-Bitrate"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* Charging-Rule-Definition */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "Charging-Rule-Definition"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "Charging-Rule-Name"}, RULE_REQUIRED, -1, -1 },
			{ { .avp_vendor = 0, .avp_name = "Service-Identifier"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 0, .avp_name = "Rating-Group"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Flow-Information"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Default-Bearer-Indication"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "TDF-Application-Identifier"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Flow-Status"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "QoS-Information"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "PS-to-CS-Session-Continuity"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Reporting-Level"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Online"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Offline"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Metering-Method"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Precedence"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "AF-Charging-Identifier"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Flows"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Monitoring-Key"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Redirect-Information"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Mute-Notification"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "AF-Signalling-Protocol"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Sponsor-Identity"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Application-Service-Provider-Identity"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Required-Access-Info"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Sharing-Key-DL"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Sharing-Key-UL"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Traffic-Steering-Policy-Identifier-DL"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Traffic-Steering-Policy-Identifier-UL"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Content-Version"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* Routing-Rule-Install */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "Routing-Rule-Install"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "Routing-Rule-Definition"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* ADC-Rule-Definition */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "ADC-Rule-Definition"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "ADC-Rule-Name"}, RULE_REQUIRED, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "TDF-Application-Identifier"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Flow-Information"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 0, .avp_name = "Service-Identifier"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 0, .avp_name = "Rating-Group"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Reporting-Level"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Online"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Offline"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Metering-Method"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Precedence"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Flow-Status"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "QoS-Information"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Monitoring-Key"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Sponsor-Identity"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Application-Service-Provider-Identity"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Redirect-Information"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Mute-Notification"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Traffic-Steering-Policy-Identifier-DL"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Traffic-Steering-Policy-Identifier-UL"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "ToS-Traffic-Class"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* ADC-Rule-Report */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "ADC-Rule-Report"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "ADC-Rule-Name"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "ADC-Rule-Base-Name"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "PCC-Rule-Status"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Rule-Failure-Code"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 0, .avp_name = "Final-Unit-Indication"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* QoS-Rule-Definition */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "QoS-Rule-Definition"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "QoS-Rule-Name"}, RULE_REQUIRED, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Flow-Information"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "QoS-Information"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Precedence"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Required-Access-Info"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Sharing-Key-DL"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Sharing-Key-UL"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Content-Version"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* Charging-Rule-Report */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "Charging-Rule-Report"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "Charging-Rule-Name"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Charging-Rule-Base-Name"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Bearer-Identifier"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "PCC-Rule-Status"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Rule-Failure-Code"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 0, .avp_name = "Final-Unit-Indication"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "RAN-NAS-Release-Cause"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Content-Version"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* Event-Report-Indication */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "Event-Report-Indication"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "AN-Trusted"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Event-Trigger"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "User-CSG-Information"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "IP-CAN-Type"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "AN-GW-Address"}, RULE_OPTIONAL, 0, 2 },
			{ { .avp_vendor = 10415, .avp_name = "3GPP-SGSN-Address"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "3GPP-SGSN-Ipv6-Address"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "3GPP-SGSN-MCC-MNC"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 0, .avp_name = "Framed-IP-Address"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "RAT-Type"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "RAI"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "3GPP-User-Location-Info"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Trace-Data"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Trace-Reference"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 5535, .avp_name = "3GPP2-BSID"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "3GPP-MS-TimeZone"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Routing-IP-Address"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "UE-Local-IP-Address"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "HeNB-Local-IP-Address"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "UDP-Source-Port"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Presence-Reporting-Area-Information"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* Charging-Rule-Install */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "Charging-Rule-Install"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "Charging-Rule-Definition"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Charging-Rule-Name"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Charging-Rule-Base-Name"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Bearer-Identifier"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Monitoring-Flags"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Rule-Activation-Time"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Rule-Deactivation-Time"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Resource-Allocation-Notification"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Charging-Correlation-Indicator"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "IP-CAN-Type"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* QoS-Rule-Install */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "QoS-Rule-Install"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "QoS-Rule-Definition"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "QoS-Rule-Name"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "QoS-Rule-Base-Name"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Tunnel-Information"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Access-Network-Charging-Identifier-Value"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Resource-Allocation-Notification"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Rule-Activation-Time"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Rule-Deactivation-Time"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "3GPP-GGSN-Address"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "3GPP-GGSN-Ipv6-Address"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "AN-GW-Address"}, RULE_OPTIONAL, 0, 2 },
			{ { .avp_vendor = 10415, .avp_name = "UDP-Source-Port"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* ADC-Rule-Install */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "ADC-Rule-Install"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "ADC-Rule-Definition"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "ADC-Rule-Name"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "ADC-Rule-Base-Name"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Monitoring-Flags"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Rule-Activation-Time"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Rule-Deactivation-Time"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }
	  /* Usage-Monitoring-Information */
	  {
		/* Grouped */
		struct dict_object * avp;
		struct dict_avp_request avp_vendor_plus_name =  { .avp_vendor = 10415, .avp_name = "Usage-Monitoring-Information"};
		CHECK_dict_search(DICT_AVP,  AVP_BY_NAME_AND_VENDOR, &avp_vendor_plus_name, &avp)
		struct local_rules_definition rules[] =
		{
			{ { .avp_vendor = 10415, .avp_name = "Monitoring-Key"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 0, .avp_name = "Granted-Service-Unit"}, RULE_OPTIONAL, 0, 2 },
			{ { .avp_vendor = 0, .avp_name = "Used-Service-Unit"}, RULE_OPTIONAL, 0, 2 },
			{ { .avp_vendor = 10415, .avp_name = "Quota-Consumption-Time"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Usage-Monitoring-Level"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Usage-Monitoring-Report"}, RULE_OPTIONAL, -1, -1 },
			{ { .avp_vendor = 10415, .avp_name = "Usage-Monitoring-Support"}, RULE_OPTIONAL, -1, -1 }
		};
		PARSE_loc_rules( rules, avp );
	  }

   }	

   /* Commands section */
   {

   }

   LOG_D( "Extension 'Dictionary definitions for ts29212_avps (e30)' initialized");
   return 0;
}

int dict_entry(char * conffile)
{
	dict_ts29212_avps_load_defs(conffile);
	return dict_ts29212_avps_load_rules(conffile);
}

const char* dict_ts29212_avps_proto_ver(char * conffile) {
	return ts29212_avps_proto_ver;
}

const double dict_ts29212_avps_gen_ts(char * conffile) {
	return ts29212_avps_gen_date;
}

EXTENSION_ENTRY2("dict_ts29212_avps", dict_ts29212_avps_load_defs, dict_ts29212_avps_load_rules, "dict_ts32299_avps", "dict_ts29273_avps", "dict_ts29214_avps", "dict_ts29272_avps", "dict_ts29229_avps", "dict_rfc4006bis_avps", "dict_ts29061_avps", "dict_draftload_avps", "dict_rfc7683_avps", "dict_rfc7155_avps", "dict_etsi283034_avps", "dict_3gpp2_avps", "dict_rfc7944_avps");



